import type { AppRouteModule } from '/@/router/types';

import { LAYOUT } from '/@/router/constant';
import { t } from '/@/hooks/web/useI18n';

const system: AppRouteModule = {
  path: '/system',
  name: 'System',
  component: LAYOUT,
  redirect: '/system/account/index',
  meta: {
    orderNo: 1,
    icon: 'ion:settings-outline',
    title: t('routes.demo.system.moduleName'),
  },
  children: [
    {
      path: 'account',
      name: 'AccountManagement',
      meta: {
        title: t('routes.demo.system.account'),
        ignoreKeepAlive: false,
      },
      component: () => import('/@/views/system/account/index.vue'),
    },
    {
      path: 'account_detail/:id',
      name: 'AccountDetail',
      meta: {
        hideMenu: true,
        title: t('routes.demo.system.account_detail'),
        ignoreKeepAlive: true,
        showMenu: false,
        currentActiveMenu: '/system/account',
      },
      component: () => import('/@/views/system/account/AccountDetail.vue'),
    },
    {
      path: 'role',
      name: 'RoleManagement',
      meta: {
        title: t('routes.demo.system.role'),
        ignoreKeepAlive: true,
      },
      component: () => import('/@/views/system/role/index.vue'),
    },

    {
      path: 'menu',
      name: 'MenuManagement',
      meta: {
        title: t('routes.demo.system.menu'),
        ignoreKeepAlive: true,
      },
      component: () => import('/@/views/system/menu/index.vue'),
    },
    {
      path: 'mobileMenu',
      name: 'MobileMenuManagement',
      meta: {
        title: t('routes.demo.system.mobileMenu'),
        ignoreKeepAlive: true,
      },
      component: () => import('/@/views/system/mobileMenu/index.vue'),
    },
    {
      path: 'mobileNav',
      name: 'MobileNav',
      meta: {
        title: t('routes.demo.system.mobileNav'),
        ignoreKeepAlive: true,
      },
      component: () => import('/@/views/system/mobileNav/index.vue'),
    },
    {
      path: 'dept',
      name: 'DeptManagement',
      meta: {
        title: t('routes.demo.system.dept'),
        ignoreKeepAlive: true,
      },
      component: () => import('/@/views/system/dept/index.vue'),
    },
    {
      path: 'post',
      name: 'PostManagement',
      meta: {
        title: t('routes.demo.system.post'),
        ignoreKeepAlive: true,
      },
      component: () => import('/@/views/system/post/index.vue'),
    },
    {
      path: 'dict',
      name: 'DictManagement',
      meta: {
        title: t('routes.demo.system.dict'),
        ignoreKeepAlive: true,
      },
      component: () => import('/@/views/system/dict/index.vue'),
    },
    {
      path: 'visualList',
      name: 'VisualList',
      meta: {
        title: t('routes.demo.system.visualList'),
        ignoreKeepAlive: true,
      },
      component: () => import('/@/views/system/visualList/index.vue'),
    },
    {
      path: 'messageReminder',
      name: 'MessageReminder',
      meta: {
        title: t('routes.demo.system.messageReminder'),
        ignoreKeepAlive: true,
      },
      component: () => import('/@/views/system/messageReminder/index.vue'),
    },
    {
      path: 'systemResource',
      name: 'SystemResource',
      meta: {
        title: t('routes.demo.system.systemResource'),
        ignoreKeepAlive: true,
      },
      component: () => import('/@/views/system/systemResource/index.vue'),
    },
    {
      path: 'fileServes',
      name: 'FileServes',
      meta: {
        title: t('routes.demo.system.fileServes'),
        ignoreKeepAlive: true,
      },
      component: () => import('/@/views/system/fileServes/index.vue'),
    },
    {
      path: 'personalCenter',
      name: 'PersonalCenter',
      meta: {
        title: t('routes.demo.system.personalCenter'),
        ignoreKeepAlive: true,
      },
      component: () => import('/@/views/system/personalCenter/index.vue'),
    },
    {
      path: 'resourceManagement',
      name: 'ResourceManagement',
      meta: {
        title: t('routes.demo.system.resourceManagement'),
        ignoreKeepAlive: true,
      },
      component: () => import('/@/views/system/resourceManagement/index.vue'),
    },
    {
      path: 'personalMap',
      name: 'PersonalMap',
      meta: {
        title: t('routes.demo.system.personalMap'),
        ignoreKeepAlive: true,
      },
      component: () => import('/@/views/system/personalMap/index.vue'),
    },
    {
      path: 'resourceManagementModule',
      name: 'ResourceManagementModule',
      meta: {
        title: t('routes.demo.system.resourceManagementModule'),
        ignoreKeepAlive: true,
      },
      component: () => import('/@/views/system/resourceManagementModule/index.vue'),
    },
    {
      path: 'meetManagement',
      name: 'MeetManagement',
      meta: {
        title: t('routes.demo.system.meetManagement'),
        ignoreKeepAlive: true,
      },
      component: () => import('/@/views/system/meetManagement/index.vue'),
    },
    {
      path: 'meetManagementSettingRoom',
      name: 'MeetManagementSettingRoom',
      meta: {
        title: t('routes.demo.system.meetManagementSettingRoom'),
        ignoreKeepAlive: true,
      },
      component: () => import('/@/views/system/meetManagement/setting-room.vue'),
    },

    // {
    //   path: 'changePassword',
    //   name: 'ChangePassword',
    //   meta: {
    //     title: t('routes.demo.system.password'),
    //     ignoreKeepAlive: true,
    //   },
    //   component: () => import('/@/views/system/password/index.vue'),
    // },
  ],
};

export default system;
